#ifndef __INPUT_MGR_H__
#define __INPUT_MGR_H__

#include "utils/singleton.h"

typedef void (Delegater::*OnMouseInputFunc)(Point pos);

class InputMgr : public Singleton<InputMgr>
{
public:
	InputMgr();
	~InputMgr();

	void DoMouseMove(Point pos);
	void DoMouseLButtonDown(Point pos);
	void DoMouseLButtonUp(Point pos);

private:
	Point WinPosToGamePos(Point winPos);
	void OnWinSizeChanged(Size winSize);

public:
	Event<OnMouseInputFunc> OnMouseMove;
	Event<OnMouseInputFunc> OnMouseLButtonDown;
	Event<OnMouseInputFunc> OnMouseLButtonUp;
};

#endif